package com.kamistoat.meimeistore.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kamistoat.common.utils.PageUtils;
import com.kamistoat.common.utils.R;
import com.kamistoat.meimeistore.product.entity.SkuInfoEntity;
import com.kamistoat.meimeistore.product.vo.thymeleaf.skuItem.SkuItemVo;

import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * sku信息
 *
 * @author kamistoat
 * @email linjianshanke@163.com
 * @date 2021-09-12 14:28:44
 */
public interface SkuInfoService extends IService<SkuInfoEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 并非服务层接口方法，只是在saveSPUInfo()中调用
     *
     * @param skuInfoEntity
     */
    void saveSkuInfo(SkuInfoEntity skuInfoEntity);

    /**
     * 自己编写的方法，查询SKU信息。
     *
     * @param params 查询条件，包括菜单Id、品牌Id、min、max
     * @return 分页封装
     */
    PageUtils queryPageBySkuInfo(Map<String, Object> params);

    /**
     * 自己编写的方法，Thymeleaf专用。根据skuId查询sku详细信息，在页面展示
     *
     * @param skuId skuID
     * @return VO类
     */
    SkuItemVo getSkuItem(Long skuId) throws ExecutionException, InterruptedException;

    /**
     * 对单个sku添加到ES
     * @param skuId
     * @return
     */
    R skuUpToES(Long skuId);
}

